package classpath

import (
	"os"
	"strings"
)
const pathListSeparator = string(os.PathListSeparator) // 路径分隔符
// 接口 ，加载类信息的接口
type Entry interface {
	// 读取class文件
	readClass(className string) ([]byte,Entry,error)
	// toString()方法
	String() string

}
// 加载一个类信息
func newEntry(path string ) Entry {
	// 是否包含 分隔符
	if strings.Contains(path,pathListSeparator){ // xxx.xxx;xxx.xxx;
		return newCompositeEntry(path)	// Entry interface 的 实现类
	}
	if strings.HasSuffix(path,"*"){ // xxx.xxx.*  ： 通配符
		return newWildcardEntry(path)	// Entry interface 的 实现类
	}
	// xxx.xxx.jar , xxx.xxx.zip
	if strings.HasSuffix(path, ".jar") || strings.HasSuffix(path, ".JAR") ||
			strings.HasSuffix(path, ".zip") || strings.HasSuffix(path, ".ZIP") {
		return newZipEntry(path)	// Entry interface 的 实现类
	}
	// xxx.xxx
	return newDirEntry(path)	// Entry interface 的 实现类
}
